package com.yapxiaoqing.basegrammar;

/**
 * BaseGrammar 基础语法
 */
public class BaseGrammar {
    public static void main(String[] args) {
        int age=18;
        System.out.println(age);

        double score =96.5;
        System.out.println(score);
        //""双引号为字符串，内容随意
        System.out.println(" ");
        //’‘单引号为字符，有且只能一个字符 \n \t 空格 特殊单字符
        System.out.println('\n');
        System.out.println('\t');
        System.out.println(' ');

        byte a1=1;//1字节 -128~127  1byte=8bit  1kb=1024b
        short a2=2;
        int a3=4;
        long a4=8;//（声明float类型的常量，需后面加L 或 l）

        float a5=4;//单精度 4字节 尾数精确到7位有效数字 （声明float类型的常量，需后面加F 或 f）
        double a6=8;//双精度 8字节

        char a7='字';//用来表示通常意义上的字符 2字节 java中所有的字符都用unicode编码 所以可以时Unicode值
       // char a8='\u0001';
      /* \u000a 也是表示换行符的转义序列，但IDEA可能会对此进行检查并显示警告或错误，因此建议使用标准的 \n 来表示换行符。*/
        char a9='\r';//回车
        char a10='\"';//可以打印双引号
        char a11='\'';//可以打印单引号
        char a12='\\';//可以打印\

        boolean flag=true;//不可以使用0或非0的整数代替false和true boolean没有提供专用的字节码指令 编译之后用int类型代替 true为1 false为0

        //自动类型转换：容量小的自动转为容量大的数据类型
        //（byte|chart|short）-->int-->long -->float-->double
        //boolean类型不能和其他数据类型运算
        String a="43";
        int i=Integer.parseInt(a);
        System.out.println(i);

        byte b1=2;
        int i1=129;
//        byte b2=b1+i1;
        int i2=b1+i1;
        System.out.println(i2);//131
        int l1=b1+i1;
        System.out.println(l1);//131
        float f=b1+i1;
        System.out.println(f);//131.0
        short s1=128;
        int i3=124554555;
        long i4=3515L;//long类型常量 须以l或L结尾（常量！！！）
        float i5=12;// float类型常量 需以f或F结尾
        //快捷换行 shift + enter
//        byte b2=128; //超出-128~127范围

        double d1=12.3;
        System.out.println(d1 + 1);
        //通常定义浮点类型用double

       //char 2字节 单引号
        char c1='\u0043';
        System.out.println(c1);

      boolean isMarried=true;
      if(isMarried){
          System.out.println("允许参观");
      }else{
          System.out.println("禁止参观");
      }
      /*
基本数据类型之间的运算规则：

前提：这里讨论只是7中基本数据类型变量的运算。不包含boolean类型的。
1. 自动类型提升：
	当容量小的数据类型的变量和容量大的数据类型的变量做运算时，结果自动提升为容量大的数据类型。
	char、byte、short-->int-->long-->float-->double

	特别的：当byte、char、short三种类型的变量做运算时，结果为int类型

2. 强制类型转换：

说明：此时容量大小指的是，表示数的范围的大和小。比如：float容量要大于long的容量
*/

        char c2='a';//97
        int i6=10;
        int i7=c2+i6;
        System.out.println(i7);//107
        long l2 = 452367894586235L;
        long l3 = 452367894586235L;

        String s2="GOOD MOON!";
        System.out.println(s2);
        String s4="a";
        String s3="";
//        char c='';//编译不通过




    }
}
